1,472 research outputs found
Toward the validation of a literature classroom intervention to foster adolescents’ insight into human nature:an iterative design process
We report on the design process of a literature classroom intervention for 15-year-old students in the Netherlands, which aimed to foster their insight into human nature―insight into themselves, fictional others, and real-world others. Starting from a model of transformative reading, an exploration of the educational context, and a review of previous intervention studies, we designed an intervention in an iterative process. We evaluated the validity and practicality of two versions of the intervention. From teacher and student data, we concluded that the validity and practicality of the first version were suboptimal and identified various suggestions for improvement. In a second iteration, the initial design principles were reoperationalized. Based on these eoperationalized principles, we designed a second version of the intervention, which was found to be sufficiently valid and practical. In addition, the second iteration led to specifiying the initial design principles, by formulating subprinciples for operationalization in the classroom. All in all, this study demonstrates that an iterative design process is needed to arrive at a valid and practical intervention, and that this process may have the potential to further specify initial design principles
Lazy Stream Programming in Prolog
In recent years, stream processing has become a prominent approach for
incrementally handling large amounts of data, with special support and
libraries in many programming languages. Unfortunately, support in Prolog has
so far been lacking and most existing approaches are ad-hoc. To remedy this
situation, we present lazy stream generators as a unified Prolog interface for
stateful computations on both finite and infinite sequences of data that are
produced incrementally through I/O and/or algorithmically.
We expose stream generators to the application programmer in two ways: 1)
through an abstract sequence manipulation API, convenient for defining custom
generators, and 2) as idiomatic lazy lists, compatible with many existing list
predicates. We define an algebra of stream generator operations that extends
Prolog via an embedded language interpreter, provides a compact notation for
composing generators and supports moving between the two isomorphic
representations.
As a special instance, we introduce answer stream generators that encapsulate
the work of coroutining first-class logic engines and support interoperation
between forward recursive AND-streams and backtracking-generated OR-streams.
Keywords: lazy stream generators, lazy lists, first-class logic engines,
stream combinators, AND-stream / OR-stream interoperation, Prolog extensionsComment: In Proceedings ICLP 2019, arXiv:1909.0764
Structured Traversal of Search Trees in Constraint-logic Object-oriented Programming
In this paper, we propose an explicit, non-strict representation of search
trees in constraint-logic object-oriented programming. Our search tree
representation includes both the non-deterministic and deterministic behaviour
during execution of an application. Introducing such a representation
facilitates the use of various search strategies. In order to demonstrate the
applicability of our approach, we incorporate explicit search trees into the
virtual machine of the constraint-logic object-oriented programming language
Muli. We then exemplarily implement three search algorithms that traverse the
search tree on-demand: depth-first search, breadth-first search, and iterative
deepening depth-first search. In particular, the last two strategies allow for
a complete search, which is novel in constraint-logic object-oriented
programming and highlights our main contribution. Finally, we compare the
implemented strategies using several benchmarks.Comment: Part of DECLARE 19 proceeding
Haskell Type Constraints Unleashed
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful features, leading to an expressive language of type terms. In contrast, constraints over types have received much less attention, creating an imbalance in the expressivity of the type system. In this paper, we rectify the imbalance, transferring familiar type-level constructs, synonyms and families, to the language of constraints, providing a symmetrical set of features at the type-level and constraint-level. We introduce constraint synonyms and constraint families, and illustrate their increased expressivity for improving the utility of polymorphic EDSLs in Haskell, amongst other examples. We provide a discussion of the semantics of the new features relative to existing type system features and similar proposals, including details of terminatio
- …